Systems and methods for generating panoramic visual content

ABSTRACT

An image or a video may include a spherical capture of a scene. A punchout of the image or the video may provide a panoramic view of the scene.

FIELD

This disclosure relates to generating panoramic visual content fromspherical visual content.

BACKGROUND

A panoramic view of a scene may be captured by panning an image capturedevice over a time duration. A large field of view of the scene may becaptured within a number of images, which may then be stitched into asingle panoramic image. Such generation of panoramic image may result innumerous stitching artifacts within the panoramic image. Such generationof panoramic image may result in intra-frame motion within the panoramicimage due to motion of one or more things in the scene during panning ofthe image capture device over the time duration.

SUMMARY

This disclosure relates to generating panoramic visual content. Visualinformation and/or other information may be obtained. The visualinformation may define visual content captured by an image capturedevice. The visual content may have a spherical field of view. Placementof a viewing window within the spherical field of view of the visualcontent may be determined. The viewing window may define an extent ofthe visual content to be included within a punchout of the visualcontent. The viewing window may have a panoramic field of view. Thepanoramic visual content may be generated based on the viewing windowand/or other information. The panoramic visual content may include thepunchout of the extent of the visual content within the viewing window.

A system that generates panoramic visual content may include one or moreelectronic storages, one or more processors, and/or other components. Anelectronic storage may store visual information defining visual content,information relating to visual content, information relating to aviewing window, information relating to placement of viewing window,information relating to a punchout of visual content, informationrelating to panoramic visual content, and/or other information. In someimplementations, the system may include one or more optical elements,one or more image sensors, one or more position sensors, and/or othercomponents.

One or more components of the system may be carried by a housing, suchas a housing of an image capture device. For example, the opticalelement(s), the image sensor(s), and/or the position sensor(s) of thesystem may be carried by the housing of an image capture device. Thehousing may carry other components, such as the processor(s) and/or theelectronic storage.

The processor(s) may be configured by machine-readable instructions.Executing the machine-readable instructions may cause the processor(s)to facilitate generating panoramic visual content. The machine-readableinstructions may include one or more computer program components. Thecomputer program components may include one or more of a visualinformation component, a viewing window component, a generationcomponent, and/or other computer program components.

The visual information component may be configured to obtain visualinformation and/or other information. The visual information may definevisual content captured by one or more image capture devices. The visualcontent may have a spherical field of view. The visual content having aspherical field of view may be viewable from a point of view.

In some implementations, the visual information may define the visualcontent of a spherical video. The spherical video may have a progresslength. The visual content may be defined by the visual information as afunction of progress through the progress length.

In some implementations, the visual content of the spherical video maybe rotated as the function of progress through the process length basedon rotational positions of the image capture device during capture ofthe visual content and/or other information. The rotation of the visualcontent may result in the visual content being oriented in a top-downmanner such that the visual content is aligned with a direction ofgravity on the image capture device during capture of the visualcontent.

In some implementations, the visual content having the spherical fieldof view may be generated based on stitching of first visual content,second visual content, and/or other visual content. The first visualcontent may be captured using a first optical element of the imagecapture device, and the second visual content may be captured using asecond optical element of the image capture device. The first opticalelement may have a first field of view, and the second optical elementmay have a second field of view. The first optical element and thesecond optical element may be carried by the image capture device suchthat a peripheral portion of the first field of view and a peripheralportion of the second field of view overlap. The overlap of theperipheral portion of the first field of view and the peripheral portionof the second field of view may enable spherical capture of the visualcontent. A stitch line for stitching of the first visual content and thesecond visual content may be positioned within the overlap of theperipheral portion of the first field of view and the peripheral portionof the second field of view.

In some implementations, the visual content may be mapped onto a sphere.In some implementations, the visual content may be mapped onto atwo-dimensional plane using an equirectangular projection. The stitchline may be positioned within lateral portions of the visual contentmapped onto the two-dimensional plane using the equirectangularprojection.

The viewing window component may be configured to determine placement ofa viewing window within the spherical field of view of the visualcontent. The viewing window may define one or more extents of the visualcontent to be included within a punchout of the visual content. Theviewing window may have a panoramic field of view. In someimplementations, the panoramic field of view may include a ninety-degreevertical field of view and a two-hundred seventy-degree horizontal filedof view.

In some implementations, the placement of the viewing window may bedetermined be located along a vertical center of the visual contentmapped onto the two-dimensional plane using the equirectangularprojection.

In some implementations, the placement of the viewing window may bedetermined be located along a horizontal center of the visual contentmapped onto the two-dimensional plane using the equirectangularprojection such that the stitch line is positioned closer to a lateraledge of the viewing window than to a center of the viewing window.

In some implementations, the placement of the viewing window may bedetermined based on identification of one or more things depicted withinthe visual content and/or other information. The placement of theviewing window may define framing of the thing(s) depicted within thevisual content.

In some implementations, the panoramic field of view may change as thefunction of progress through the progress length to simulate changes inzoom within a panoramic video. In some implementations, the placement ofthe viewing window may be determined to include a depiction of a horizonwithin the visual content at a vertical position fixed relative to aheight of the viewing window during changing of the panoramic field ofview.

The generation component may be configured to generate the panoramicvisual content based on the viewing window and/or other information. Thepanoramic visual content may include the punchout of the extent(s) ofthe visual content within the viewing window. In some implementations,generation of the panoramic visual content based on the viewing windowmay include cropping of one or more extents of the visual contentoutside the viewing window.

In some implementations, the panoramic visual content may be generatedas the function of progress through the progress length for inclusion inthe panoramic video.

In some implementation, the visual content may be mapped onto a sphere,and generation of the panoramic visual content based on the viewingwindow includes: rotation of the sphere to position the extent of thevisual content defined by the viewing window at a location of the spherecorresponding to a center portion of the visual content mapped onto atwo-dimensional plane using an equirectangular projection; and crop ofone or more extents of the visual content outside the center portion.

These and other objects, features, and characteristics of the systemand/or method disclosed herein, as well as the methods of operation andfunctions of the related elements of structure and the combination ofparts and economies of manufacture, will become more apparent uponconsideration of the following description and the appended claims withreference to the accompanying drawings, all of which form a part of thisspecification, wherein like reference numerals designate correspondingparts in the various figures. It is to be expressly understood, however,that the drawings are for the purpose of illustration and descriptiononly and are not intended as a definition of the limits of theinvention. As used in the specification and in the claims, the singularform of “a,” “an,” and “the” include plural referents unless the contextclearly dictates otherwise.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example system that generates panoramic visualcontent.

FIG. 2 illustrates an example method for generating panoramic visualcontent.

FIG. 3 illustrates an example spherical visual content.

FIG. 4 illustrates example viewing directions for spherical videocontent.

FIGS. 5A-5B illustrate example extents of spherical visual content.

FIG. 6 illustrates an example image capture device.

FIG. 7 illustrates example spherical visual content mapped onto asphere.

FIG. 8 illustrates example spherical visual content mapped be mappedonto a two-dimensional plane using an equirectangular projection.

FIGS. 9A and 9B illustrate example placements of viewing window.

FIGS. 10A and 10B illustrate example placements of viewing window.

FIGS. 11A and 11B illustrate example placements of viewing window.

FIG. 12 illustrates example rotation of spherical visual content.

FIG. 13 illustrates example rotation of spherical visual content.

FIG. 14 illustrates example rotation of spherical visual content.

DETAILED DESCRIPTION

FIG. 1 illustrates a system 10 for generating panoramic visual content.The system 10 may include one or more of a processor 11, an interface 12(e.g., bus, wireless interface), an electronic storage 13, and/or othercomponents. In some implementations, the system 10 may include one ormore optical elements, one or more image sensors, one or more positionsensors, and/or other components. Visual information and/or otherinformation may be obtained by the processor 11. The visual informationmay define visual content captured by an image capture device. Thevisual content may have a spherical field of view. Placement of aviewing window within the spherical field of view of the visual contentmay be determined by the processor 11. The viewing window may define anextent of the visual content to be included within a punchout of thevisual content. The viewing window may have a panoramic field of view.The panoramic visual content may be generated by the processor 11 basedon the viewing window and/or other information. The panoramic visualcontent may include the punchout of the extent of the visual contentwithin the viewing window.

The electronic storage 13 may be configured to include electronicstorage medium that electronically stores information. The electronicstorage 13 may store software algorithms, information determined by theprocessor 11, information received remotely, and/or other informationthat enables the system 10 to function properly. For example, theelectronic storage 13 may store visual information defining visualcontent, information relating to visual content, information relating toa viewing window, information relating to placement of viewing window,information relating to a punchout of visual content, informationrelating to panoramic visual content, and/or other information.

Visual content may refer to content of one or more images and/or one ormore videos that may be consumed visually. For example, visual contentmay be defined within one or more images and/or one or more video framesof a video. For instance, video frame(s) of a video may define thevisual content of the video. Video frame(s) may define visual contentviewable as a function of progress through a progress length of thevideo. A video frame may include an image of the video at a momentwithin the progress length of the video. Visual content may be generatedbased on light received within a field of view of a single image sensoror within fields of view of multiple image sensors during a captureperiod.

Visual content may be stored in one or more formats and/or one or morecontainers. A format may refer to one or more ways in which theinformation defining visual content is arranged/laid out (e.g., fileformat). A container may refer to one or more ways in which informationdefining visual content is arranged/laid out in association with otherinformation (e.g., wrapper format). Information defining visual content(visual information) may be stored within a single file or multiplefiles. For example, visual information defining an image or video framesof a video may be stored within a single file (e.g., image file, videofile), multiple files (e.g., multiple image files, multiple videofiles), a combination of different files, and/or other files.

Visual information may define visual content and/or other contentcaptured by one or more image capture devices. The visual informationmay define visual content by including information that defines one ormore content, qualities, attributes, features, and/or other aspects ofthe visual content. For example, the visual information may definevisual content of an image, a video frame, and/or a video by includinginformation that makes up the content of the image, the video frame,and/or the video, and/or information that is used to determine thecontent of the image, the video frame, and/or the video. For instance,the visual information may include information that makes up and/or isused to determine the arrangement of pixels, characteristics of pixels,values of pixels, and/or other aspects of pixels that define visualcontent of the image, the video frame, and/or the video. For example,the visual information may include information that makes up and/or isused to determine pixels of the image or video frame(s) of the video.Other types of visual information are contemplated.

Content of one or more videos may be referred to as video content. Videocontent may have a progress length. That is, a video may include videocontent having a progress length. A progress length may be defined interms of time durations and/or frame numbers. For example, video contentof a video may have a time duration of 60 seconds. Video content of avideo may have 1800 video frames. Video content having 1800 video framesmay have a play time duration of 60 seconds when viewed at 30 frames persecond. Other progress lengths, time durations, and frame numbers arecontemplated.

Video content may include visual content, and/or other content. Forexample, video content may include visual content viewable as a functionof progress through the progress length of the video content, audiocontent playable as a function of progress through the progress lengthof the video content, and/or other content that may be played back as afunction of progress through the progress length of the video content.

Visual content may include spherical visual content. Spherical visualcontent may include visual content viewable from one or more points ofview (e.g., within a sphere, center of a sphere). Spherical visualcontent may refer to visual content generated through capture ofmultiple views from a single location. Spherical visual content may becaptured through the use of one or more image capture devices to captureimages from a location. The captured images may be stitched together toform the spherical visual content (spherical image). Spherical visualcontent may include full spherical visual content (360 degrees ofcapture) or partial spherical visual content (less than 360 degrees ofcapture).

Spherical visual content may be generated based on light received withina field of view of a single image sensor or within fields of view ofmultiple image sensors during a capture period. For example, multipleimages/videos captured by multiple cameras/image sensors may becombined/stitched together to form the spherical visual content. Thefield of view of camera(s)/image sensor(s) may be moved/rotated (e.g.,via movement/rotation of optical element(s), such as lens, of the imagesensor(s)) to capture multiple images/videos from a location, which maybe combined/stitched together to form the spherical visual content.

FIG. 3 illustrates an example spherical visual content 300. Thespherical visual content 300 may include content of a spherical image ora spherical video. The spherical visual content 300 may include visualcontent viewable from a point of view (e.g., center of sphere) as afunction of progress through the progress length of the spherical visualcontent 300. FIG. 3 illustrates example rotational axes for thespherical visual content 300. Rotational axes for the spherical visualcontent 300 may include a yaw axis 310, a pitch axis 320, a roll axis330, and/or other axes. Rotations about one or more of the yaw axis 310,the pitch axis 320, the roll axis 330, and/or other axes may definedirections of view (e.g., viewing directions) for the spherical visualcontent 300.

For example, a 0-degree rotation around the yaw axis 310 may correspondto a front viewing direction. A 90-degree rotation around the yaw axis310 may correspond to a right viewing direction. A 180-degree rotationaround the yaw axis 310 may correspond to a back-viewing direction. A−90-degree rotation around the yaw axis 310 may correspond to a leftviewing direction.

A 0-degree rotation around the pitch axis 320 may correspond to aviewing direction that may be level with respect to horizon. A 45-degreerotation around the pitch axis 320 may correspond to a viewing directionthat may be pitched up with respect to horizon by 45-degrees. A90-degree rotation around the pitch axis 320 may correspond to a viewingdirection that may be pitched up with respect to horizon by 90-degrees(looking up). A −45-degree rotation around the pitch axis 320 maycorrespond to a viewing direction that may be pitched down with respectto horizon by 45-degrees. A −90-degree rotation around the pitch axis320 may correspond to a viewing direction that may be pitched down withrespect to horizon by 90-degrees (looking down).

A 0-degree rotation around the roll axis 330 may correspond to a viewingdirection that may be upright. A 90-degree rotation around the roll axis330 may correspond to a viewing direction that may be rotated to theright by 90-degrees. A −90-degree rotation around the roll axis 330 maycorrespond to a viewing direction that may be rotated to the left by90-degrees. Other rotations and viewing directions are contemplated.

A presentation of visual content may include presentation of one or moreportions of visual content on one or more displays based on a viewingwindow and/or other information. An extraction of visual content mayinclude extraction of one or more portions of visual content (e.g., intoa cropped image) based on a viewing window and/or other information. Aviewing window may define extents of the visual content viewable on oneor more displays and/or extents of the visual content to be extracted.For video content, a viewing window may define extents of the visualcontent as the function of progress through the progress length of thevideo content. A viewing window may define extents of the visual contentpresented on the display(s)/extracted as the function of progressthrough the progress length of the video content. For spherical videocontent, the viewing window may define extents of the visual contentfrom the point of view as the function of progress through the progresslength of the spherical video content.

The viewing window may be characterized by viewing directions, viewingsizes (e.g., viewing zoom, viewing magnification), viewing rotations,and/or other information. A viewing direction may define a direction ofview for visual content. A viewing direction may define the angle/visualportion of the visual content at which the viewing window may bedirected. A viewing direction may define a direction of view for thevisual content selected by a user, defined by instructions for viewingthe visual content, and/or determined based on other information aboutviewing the visual content. For video content, a viewing direction maybe defined as a function of progress through the progress length of thevideo content (e.g., director track specifying viewing direction to bepresented during playback as a function of progress through the progresslength of the video content). For spherical visual content, a viewingdirection may define a direction of view from the point of view fromwhich the visual content may be defined. Viewing directions for thevideo content may be characterized by rotations around the yaw axis 310,the pitch axis 320, the roll axis 330, and/or other axes. For example, aviewing direction of a 0-degree rotation around a yaw axis (e.g., theyaw axis 310) and a 0-degree rotation around a pitch axis (e.g., thepitch axis 320) may correspond to a front viewing direction (the viewingwindow may be directed to a forward portion of the visual contentcaptured within the spherical visual content).

For example, FIG. 4 illustrates example changes in viewing directions400 (e.g., selected by a user for video content, specified by adirector's track) as a function of progress through the progress lengthof the video content. The viewing directions 400 may change as afunction of progress through the progress length of the video content.For example, at 0% progress mark, the viewing directions 400 maycorrespond to a zero-degree yaw angle and a zero-degree pitch angle. At25% progress mark, the viewing directions 400 may correspond to apositive yaw angle and a negative pitch angle. At 50% progress mark, theviewing directions 400 may correspond to a zero-degree yaw angle and azero-degree pitch angle. At 75% progress mark, the viewing directions400 may correspond to a negative yaw angle and a positive pitch angle.At 87.5% progress mark, the viewing directions 400 may correspond to azero-degree yaw angle and a zero-degree pitch angle. The viewingdirections 400 may define a path of movement for the viewing window(e.g., a trajectory followed by the viewing window) as a function ofprogress through the progress length of the video content. Other viewingdirections are contemplated.

A viewing size may define a size of the viewing window. A viewing sizemay define a size (e.g., size, magnification, viewing angle) of theextents of visual content. A viewing size may define the dimensions ofthe viewing window. A viewing size may define a size of extents ofvisual content selected by a user, defined by instructions for viewingthe visual content, and/or determined based on other information aboutviewing the visual content. For video content, a viewing size may bedefined as a function of progress through the progress length of thevideo content as a function of progress through the progress length ofthe video content (e.g., director track specifying viewing size to bepresented as a function of progress through progress length of videocontent). In some implementations, a viewing size may define differentshapes of extents. For example, a viewing window may be shaped as arectangle, a triangle, a circle, and/or other shapes.

A viewing rotation may define a rotation of the viewing window. Aviewing rotation may define one or more rotations of the viewing windowabout one or more axis. In some implementations, a viewing rotation maybe defined by one or more parameters of a viewing direction. Forexample, a viewing rotation may be defined based on rotation about anaxis (e.g., the roll axis 330) corresponding to a viewing direction. Aviewing rotation may define a rotation of the viewing window selected bya user, defined by instructions for viewing the visual content, and/ordetermined based on other information about viewing the visual content.For video content, a viewing rotation may be defined as a function ofprogress through the progress length of the video content (e.g.,director track specifying viewing rotation to be used as a function ofprogress through progress length of video content). For example, aviewing rotation of a viewing window having a rectangular shape maydetermine whether the rectangular viewing window is to be positioned ina portrait orientation (e.g., for a portrait view of the visualcontent), in a landscape orientation (e.g., for a landscape view of thevisual content), and/or other orientation with respect to the visualcontent.

FIGS. 5A-5B illustrate examples of extents for spherical visual content500. In FIG. 5A, the size of the extent of the spherical visual content500 may correspond to the size of extent A 510. In FIG. 5B, the size ofextent of the spherical visual content 500 may correspond to the size ofextent B 520. Extent of the spherical visual content 500 in FIG. 5A maybe smaller than extent of the spherical visual content 500 in FIG. 5B.The extent of the spherical visual content 500 in FIG. 5B may be moretilted with respect to the spherical visual content 500 than extent ofthe spherical visual content 500 in FIG. 5A. Other viewing sizes andviewing rotations are contemplated.

An image capture device may refer to a device captures visual content.An image capture device may capture visual content in form of images,videos, and/or other forms. For example, an image capture device mayrefer to a camera and/or an image sensor. An image capture device may bea standalone device (e.g., camera) or may be part of another device(e.g., part of a smartphone). FIG. 6 illustrates an example imagecapture device 602. Visual content may be captured by the image capturedevice 602 during a capture duration. The image capture device 602 mayinclude a housing 612, and the housing 612 may carry (be attached to,support, hold, and/or otherwise carry) one or more of an optical elementA 604A, an optical element B 604B, an image sensor A 606A, an imagesensor B 606B, a position sensor 608, a processor 610, and/or othercomponents. In some implementations, an image capture device may includea non-spherical image capture device. Other configurations of imagecapture devices are contemplated.

One or more components of the image capture device 602 may be the sameas, be similar to, and/or correspond to one or more components of thesystem 10. For example, the processor 610 may be the same as, be similarto, and/or correspond to the processor 11.

The optical elements 604A, 604B may include instrument(s), tool(s),and/or medium that acts upon light passing through theinstrument(s)/tool(s)/medium. For example, the optical elements 604A,604B may include one or more of lens, mirror, prism, and/or otheroptical elements. The optical elements 604A, 604B may affect direction,deviation, and/or path of the light passing through the optical elements604A, 604B. While the optical elements 604A, 604B are shown in astaggered configuration, this is merely an example and otherconfigurations of optical elements are contemplated.

The image sensors 606A, 606B may include sensor(s) that convertsreceived light into output signals. The output signals may includeelectrical signals. The image sensors 606A, 606B may generate outputsignals conveying information that defines visual content of one or moreimages and/or one or more video frames of a video. For example, theimage sensors 606A, 606B may include one or more of a charge-coupleddevice sensor, an active pixel sensor, a complementary metal-oxidesemiconductor sensor, an N-type metal-oxide-semiconductor sensor, and/orother image sensors.

The image sensors 606A, 606B may be configured to generate outputsignals conveying visual information (defining visual content of imagesand/or videos) based on light that becomes incident thereon and/or otherinformation. The optical element A 604A may be configured to guide lightwithin a field of view to the image sensor A 606A, and the image sensorA 606A may be configured to generate output signals conveying visualinformation based on light that becomes incident thereon via the opticalelement A 604A. The optical element B 604B may be configured to guidelight within a field of view to the image sensor B 606B, and the imagesensor B 606B may be configured to generate output signals conveyingvisual information based on light that becomes incident thereon via theoptical element B 604B. The fields of view of the optical elements 604A,604B may refer to the extents of the observable world that is seenthrough the optical elements 604A, 604B. The field of views of theoptical elements 604A, 604B may include one or more angles (e.g.,vertical angle, horizontal angle, diagonal angle) at which light isreceived and passed on by the optical elements 604A, 604B. The fields ofview of the optical elements 604A, 604B may be the same or different.

The fields of view of the optical elements 604A, 604B may be greaterthan or equal to 180-degrees. The optical elements 604A, 604B may becarried by the housing 312 such that peripheral portions of the fieldsof view of the optical elements 604A, 604B overlap. The overlap of theperipheral portions of the fields of view of the optical elements 604A,604B may enable capture of spherical visual content (e.g., of imagesand/or videos) based on the visual information conveyed by the outputsignals of the image sensors 606A, 606B. That is, the overlap of theperipheral portions of the fields of view of the optical elements 604A,604B may enable spherical capture of visual content based on visualcontent defined by the visual information of the image sensor A 606A(visual content captured by the image sensor A 606A) and visual contentdefined by the visual information of the image sensor B 606B (visualcontent captured by the image sensor B 606B). Separate visual contentcaptured by the image sensors 606A, 606B may be stitched along one ormore stitch lines. A stitching line for stitching separate visualcontent captured by the image sensors 606A, 606B may be positionedwithin the overlap of the peripheral portions of the fields of view ofthe optical elements 604A, 604B.

The position sensor 608 may include sensor(s) that measures experiencedpositions (e.g., orientations) and/or motions (rotations). The positionsensor 608 may convert experienced positions and/or motions into outputsignals. The output signals may include electrical signals. For example,the position sensor 608 may refer to a set of position sensors, whichmay include one or more inertial measurement units, one or moreaccelerometers, one or more gyroscopes, one or more magnetometers, oneor more global positioning systems, and/or other position sensors. Theposition sensor 608 may generate output signals conveying informationthat characterizes positions and/or motions of the position sensor 608and/or device(s) carrying the position sensor 608, such as the imagecapture device 602 and/or the housing 612. For example, the positionsensor 608 may generate output signals conveying information thatcharacterizes orientations and/or rotations of the position sensor 608and/or device(s) carrying the position sensor 608, such as the imagecapture device 602 and/or the housing 612.

For example, the position sensor 608 may be configured to generate aposition output signal based on positions of the housing 612/imagecapture device 602 during the capture duration. The position outputsignal may convey position information that characterizes positions ofthe image capture device 602 at different moments (points in time, timedurations) within the capture duration. The position information maycharacterize positions of the image capture device 602 based on specifictranslational and/or rotational positions of the image capture device602 and/or based on changes in translational and/or rotational positionsof the image capture device 602 as a function of progress through thecapture duration. That is, the position information may characterizetranslational and/or rotational positions of the image capture device602 and/or changes in translational and/or rotational positions (motion,rotation) of the image capture device 602 (e.g., direction, amount,velocity, acceleration) during the capture duration. The positioninformation may characterize direction of gravity on the image capturedevice 602 as a function of progress through the capture duration.

The position information may be determined based on signals generated bythe position sensor 608 and independent of the information/signalsgenerated by the image sensors 606A, 606B. That is, position informationmay be determined without using visual content/images/videos generatedby the image sensors 606A/606B. Use of visual content/images/videos todetermine positions/motions of the image capture device 602 may becomputationally expensive in terms of processing power, processing time,and/or battery consumption. Using the information/signals from theposition sensor 608 to determine positions/motions of the image capturedevice 602 may be computationally cheaper. That is, less processingpower, processing time, and/or battery consumption may be required whenpositions/motions of the image capture device 602 are determined fromthe information/signals from the position sensor 608 than theinformation/signals from the image sensors 606A, 606B. In someimplementations, visual content/images/videos may be analyzed for otherreasons. Such analysis of the visual content/images/video may beleveraged to improve the precision and/or reliability of positioninformation and/or image capture device position (e.g., orientation)estimation. For example, visual analysis performed independent ofdetermination of the position information may be used in addition to theposition information determined based on outputs of the position sensor608 to improve estimation of the image capture device position/motion(e.g., orientation, rotation).

The processor 610 may include one or more processors (logic circuitry)that provide information processing capabilities in the image capturedevice 602. The processor 610 may provide one or more computingfunctions for the image capture device 602. The processor 610 mayoperate/send command signals to one or more components of the imagecapture device 602 to operate the image capture device 602. For example,the processor 610 may facilitate operation of the image capture device602 in capturing image(s) and/or video(s), facilitate operation of theoptical elements 604A, 604B (e.g., change how light is guided by theoptical elements 604A, 604B), and/or facilitate operation of the imagesensors 606A, 606B (e.g., change how the received light is convertedinto information that defines images/videos and/or how the images/videosare post-processed after capture).

The processor 610 may obtain information from the image sensors 606A,606B and/or the position sensor 608, and/or facilitate transfer ofinformation from the image sensors 606A, 606B and/or the position sensor608 to another device/component. The processor 610 may be remote fromthe processor 11 or local to the processor 11. One or more portions ofthe processor 610 may be part of the processor 11 and/or one or moreportions of the processor 11 may be part of the processor 610. Theprocessor 610 may include and/or perform one or more functionalities ofthe processor 11 shown in FIG. 1 .

Referring back to FIG. 1 , the system 10 may be remote from an imagecapture device or local to the image capture device. One or moreportions of an image capture device may be remote from or a part of thesystem 10. One or more portions of the system 10 may be remote from or apart of an image capture device. For example, one or more components ofthe system 10 may be carried by a housing, such as a housing of an imagecapture device. For instance, optical element(s), image sensor(s),and/or position sensor(s) of the system 10 may be carried by the housingof the image capture device. The housing may carry other components,such as the processor 11, the electronic storage 13. References to ahousing of an image capture device may refer to the image capturedevice, and vice versa. For example, references to position/motion of ahousing of an image capture device may refer to position/motion of theimage capture device, and vice versa.

The processor 11 may be configured to provide information processingcapabilities in the system 10. As such, the processor 11 may compriseone or more of a digital processor, an analog processor, a digitalcircuit designed to process information, a central processing unit, agraphics processing unit, a microcontroller, an analog circuit designedto process information, a state machine, and/or other mechanisms forelectronically processing information. The processor 11 may beconfigured to execute one or more machine-readable instructions 100 tofacilitate generating panoramic visual content. The machine-readableinstructions 100 may include one or more computer program components.The machine-readable instructions 100 may include one or more of avisual information component 102, a viewing window component 104, ageneration component 106, and/or other computer program components.

The visual information component 102 may be configured to obtain visualinformation and/or other information. Obtaining visual information mayinclude one or more of accessing, acquiring, analyzing, determining,examining, identifying, loading, locating, opening, receiving,retrieving, reviewing, storing, and/or otherwise obtaining the visualinformation. The visual information component 102 may obtain visualinformation from one or more locations. For example, the visualinformation component 102 may obtain visual information from a storagelocation, such as the electronic storage 13, electronic storage ofinformation and/or signals generated by one or more sensors, electronicstorage of a device accessible via a network, and/or other locations.The visual information component 102 may obtain visual information fromone or more hardware components (e.g., an image sensor) and/or one ormore software components (e.g., software running on a computing device).Visual information may be obtained during acquisition of the visualcontent and/or after acquisition of the visual content by one or moreimage capture devices. For example, the visual information component 102may obtain visual information defining visual content while the visualcontent is being captured by an image capture device. The visualinformation component 102 may obtain visual information defining visualcontent after the visual content has been captured and stored in memory(e.g., the electronic storage 13).

In some implementations, the visual information component 102 may obtainvisual information based on user interaction with a userinterface/application (e.g., video/image editing application, videoplayer/image viewer application), and/or other information. For example,a user interface/application may provide option(s) for a user to selectone or more visual content from which panoramic visual content are to begenerated. The visual information defining the visual content may beobtained based on the user's selection of the visual content through theuser interface/application. Other selections of visual content forretrieval of visual information are contemplated.

The visual information may define visual content captured by one or moreimage capture devices. The visual content may have a spherical field ofview. The visual content having a spherical field of view may beviewable from a point of view (e.g., center of sphere). FIG. 7illustrates example spherical visual content 700. The spherical field ofview of the spherical visual content 700 may include a hundredeighty-degree vertical field of view and a three-hundred sixty-degreehorizontal field of view. The spherical visual content 700 may be mappedonto a sphere. The spherical visual content 700 mapped onto the spherein the image sensor space/three-dimensional space. The spherical visualcontent 700 may be mapped onto the image space/two-dimensional spaceusing one or more projections (equirectangular projection, equi-angularcubemap projection, stereographic projection) for storage, forpresentation (e.g., on a two-dimensional display), and/or forextraction.

In some implementations, the visual information may define the visualcontent of a spherical video. The spherical video may have a progresslength. The visual content may be defined by the visual information as afunction of progress through the progress length. For example, thevisual information may define visual content of video frames of thespherical video, with the video frames being associated with differentmoments within the progress length.

In some implementations, the visual content (e.g., of a sphericalvideo/spherical image) may be modified based on positions (e.g.,rotational positions) of the image capture device(s) during the captureduration. Modification of the visual content may include one or morechanges to visual characteristics of the visual content, such as one ormore changes in pixel locations and/or pixel intensities. Modificationof the visual content may include one or more of rotation of the visualcontent, warping of the visual content, and/or other modification of thevisual content. The modification of the visual content may be performedin the sensor space/3D space. Rotation of the visual content may includechange in how the visual content is oriented. The visual content may berotated to compensate for different rotational positions of the imagecapture device during the capture duration. Warping of the visualcontent may include visual manipulation of one or more portions of thevisual content. Visual content may be warped to compensate for differentperspectives captured within the visual content due to motion of theimage capture device during the capture duration. Visual content may bewarped to provide rolling shutter compensation.

In some implementations, the visual content may be modified to providehorizon leveling for the visual content. Horizon-leveling visual contentmay refer to modifying (e.g., rotating, warping) the visual content toso that the visual content depicts a leveled scene. Horizon-levelingvisual content may refer to modifying the visual content to includedepiction of a scene that is leveled with respect to ground, earth,and/or the horizon. Horizon-leveling visual content may refer tomodifying the visual content to depict a scene which appears to havebeen captured by an upright image capture device (non-tilted imagecapture device).

For example, the visual content may be rotated based on rotationalposition of the image capture device(s) (e.g., orientation of the imagecapture device with respect to ground and/or gravity direction) duringcapture of the visual content and/or other information. For a sphericalvideo, the visual content may be rotated as the function of progressthrough the process length based on rotational positions of the imagecapture device(s) during the capture duration.

For example, the visual content may be rotated based on the rotationalposition of the image capture device(s) to be oriented in a top-downmanner and/or other orientations. A top-down manner may include thevisual content may oriented so that upward depictions (e.g., depictionof sky) are located at the top while downward depictions (e.g.,depiction of ground) are located at the bottom. The rotation of thevisual content may result in the visual content being oriented in atop-down manner such that the visual content is aligned with a directionof gravity on the image capture device(s) during capture of the visualcontent. For example, readings from the position sensor may be used todetermine the direction of gravity when visual content is captured(during capture duration). The direction of gravity may be used todetermine the amount and/or direction of rotation that needs to beapplied to the visual content to level the depiction within the visualcontent. For example, the visual content may be rotated so that thedirection of gravity is pointed downwards.

For instance, FIG. 12 illustrates example rotation of spherical visualcontent 1200. The spherical visual content 1200 may have been capturedby an image capture device that was rotated (about a roll axis) by 90degrees. The gravity direction on the image capture device duringcapture of the visual content 1200 is shown by an arrow 1250. Capture ofthe spherical visual content 1200 by the rotated image capture devicemay have resulted in depiction of left scene portion 1205 to be locatedat the top of the sphere. The spherical visual content 1200 may berotated by a rotation 1220 so that the spherical visual content 1200 isoriented in a top-down manner. In the top-down manner, the depiction ofleft scene portion 1205 may be located at the lateral (left) portion ofthe sphere. In the top-down manner, the spherical visual content 1200may be aligned with the direction of gravity (indicated by the gravitydirection 1250) on the image capture device during capture duration.

In some implementations, the visual content (e.g., of a sphericalvideo/spherical image) may be modified to provide direction locking forthe visual content. Direction locking visual content may refer to (e.g.,rotating, warping) the visual content so that the visual content depictsa scene in the same direction. Direction locking visual content mayrefer to modifying the visual content to include depiction of a scenethat is oriented in the same direction (e.g., forward direction of theimage capture device, compass direction). Direction locking visualcontent may refer to modifying the visual content to depict a scenewhich appear to have been captured by an image capture device pointed insingle direction (e.g., forward direction, north direction).

For example, the visual content may be rotated based on the rotationalposition of the image capture device(s) to be direction locked such thatthe visual content does not include lateral rotations (e.g., rotationsabout the yaw axis 310). For example, readings form the position sensormay be used to determine left and/or right rotation of an image capturedevice when visual content is captured (during capture duration). Theleft and/or right rotation of the image capture device may be used todetermine the amount and/or direction of rotation that needs to beapplied to the visual content to depict the scene in the same direction.For example, the visual content may be rotated so that the front portionof the visual content depicts a particular direction (e.g., forwarddirection, north direction).

For instance, FIG. 13 illustrates example rotation of spherical visualcontent 1300. The spherical visual content 1300 may have been capturedby an image capture device that was rotated (about a yaw axis) by 90degrees. The north direction for the image capture device during captureof the visual content 1300 is shown by an arrow 1350. Capture of thespherical visual content 1300 by the rotated image capture device mayhave resulted in depiction of north scene portion to be located at thelateral (left) portion of the sphere. The spherical visual content 1300may be rotated by a rotation 1320 so that the spherical visual content1300 is pointed in the north direction. The depiction of north sceneportion may be located at the front portion of the sphere.

Referring back to FIG. 7 , the spherical visual content 700 (having thespherical field of view) may be generated based on stitching of multiplevisual content. For example, one hemispherical visual content (e.g.,front hemispherical visual content, right hemispherical visual content)may be captured using one optical element of an image capture device,and another (opposing) hemispherical visual content (e.g., backhemispherical visual content, left hemispherical visual content) may becaptured using another optical element of the image capture device. Theoptical elements may be carried by the image capture device such thatperipheral portions of the fields of view of the optical elementsoverlap. The overlap of the peripheral portions of the fields of viewmay enable spherical capture of the spherical visual content 700. Astitch line for stitching of multiple visual content may be positionedwithin the overlap of the peripheral portions of the fields of view ofthe optical element. For example, in FIG. 7 , stitching fronthemispherical visual content and back hemispherical visual content maybe performed using a stitch line 708.

In some implementations, the visual content may be mapped onto atwo-dimensional plane using one or more projections. A projection maydefine arrangement of pixels that define the visual content. How pixelsare arranged to form the visual content may depend on projection of thevisual content. Projection of visual content may refer to how portionsof the visual content/pixels are mapped onto a two-dimensional plane(e.g., two-dimensional image). For example, a projection may arrangepixels of an image such that one or more visual elements (defined by oneor more pixels) of the visual content within the image are stretched(e.g., at the top or bottom of an image arranged using anequirectangular projection). Example projections may include rectilinearprojection, cylindrical projection, Mercator projection, Millerprojection, Lambert projection, equirectangular projection, equi-angularcubemap projection, stereographic projection, fisheye projection,equisolid projection, orthographic projection, cubic projection,sinusoidal projection, transverse projection (rotation of a projectionby 90 degrees), Panini projection, architectural projection, and/orother projections.

For example, FIG. 8 illustrates an example mapping of spherical visualcontent 800 onto a two-dimensional plane using an equirectangularprojection. The mapping of the spherical visual content 800 onto thetwo-dimensional plane using the equirectangular projection may result ina pixel on the top of the spherical visual content 800 in thethree-dimensional space (top 702 shown in FIG. 7 ) being defined bymultiple pixels along the top 802 of the two-dimensional plane, a pixelon the bottom of the spherical visual content 800 in thethree-dimensional space (bottom 706 shown in FIG. 7 ) being defined bymultiple pixels along the bottom 806 of the two-dimensional plane, and apixel in the front of the spherical visual content 800 in thethree-dimensional space (point 704 shown in FIG. 7 ) being defined by apixel at the center 804 of the two-dimensional plane. The mapping of thespherical visual content 800 onto the two-dimensional plane using theequirectangular projection may result in a stitch line 808(corresponding to the stitch line 708 in FIG. 7 ) being positionedwithin lateral portions of two-dimensional plane. The stitch line 808may be positioned within left and right lateral portions of thespherical visual content 800 mapped onto the two-dimensional plane usingthe equirectangular projection. The stitch line 808 may be positioned at−90 horizon degrees and 90 horizontal degrees.

The viewing window component 104 may be configured to determineplacement of a viewing window within the spherical field of view of thevisual content. The determination of the placement of the viewing windowwithin the spherical field of view of the visual content may includedetermination of one or more of viewing direction, viewing size, viewingrotation, and/or other parameters of the viewing window. For videocontent, placement of the viewing window within the spherical field ofview of the visual content may be determined as the function of progressthrough the progress length of the video content.

The viewing window may define one or more extents of the visual contentto be included within a punchout of the visual content. A punchout ofthe visual content may refer to an output of one or more portions of thevisual content for presentation (e.g., current presentation, futurepresentation based on video generated using the punchout). A punchout ofthe visual content may refer to extents of the visual content that isobtained for viewing and/or extraction. The extents of the visualcontent viewable/extracted within the viewing window may be used toprovide views of different spatial portions of the visual content.

For example, a viewing window 710 in FIG. 7 may define an extent of thespherical visual content 700 to be included within a punchout of thespherical visual content 700. The extent defined by the viewing window710 may include a front spatial portion of the spherical visual content700. For example, the viewing window 710 may include depiction of aportion of a scene in front of the image capture device(s) used tocapture the spherical visual content 700. As another example, a viewingwindow 810 in FIG. 8 may define an extent of the spherical visualcontent 800 to be included within a punchout of the spherical visualcontent 800. The extent defined by the viewing window 810 may include acenter spatial portion of the spherical visual content 800 mapped ontothe two-dimensional plane using the equirectangular projection. In someimplementations, the center spatial portion of the spherical visualcontent 800 defined by the viewing window 810 in the two-dimensionalplane may correspond to the front spatial portion of the sphericalvisual content 800 in the three-dimensional space (e.g., the frontspatial portion defined by the viewing window 710).

The viewing window may have a panoramic field of view. The panoramicfield of view may refer to may refer to size, shape, and/or aspect ratioof the viewing window. The panoramic field of view of the viewing windowmay include a wide field of view, a tall field of view, and/or otherfield of view. The panoramic field of view of the viewing window mayinclude one dimensional field of view (e.g., visible extent in onedirection) that is at least as twice as large as another dimensionalfield of view (e.g., visible extent in perpendicular direction). Forexample, a wide field of view may have a horizontal field of view thatis at least as twice as large as a vertical field of view (aspect ratioof at least 2:1). A tall field of view (e.g., to create vertoramas) mayhave a vertical field of view that is at least as twice as large as ahorizontal field of view (aspect ratio of 1:2 or less). Other aspectratios of panoramic field of view are contemplated.

For example, the panoramic field of view of the viewing window mayinclude a ninety-degree (or less) vertical field of view and atwo-hundred seventy-degree horizontal field of view. Usage of suchpanoramic field of view may enable presentation/extraction of a wideview depicted within the spherical visual content. In someimplementations, the panoramic field of view may be determined based onuser input and/or other information. For example, a user may be providedwith one or more options to select the panoramic field of view (e.g.,horizontal panorama option, vertical panorama option, custom panoramaoption), and the panoramic field of view may be determined based on theoption(s) selected by the user. Other rotations and degrees of panoramicfield of view are contemplated.

The panoramic field of view may provide a single continuous view of thescene captured within the spherical visual content. For example, thepanoramic field of view may provide a single continuous view of a scenicscene captured within the spherical visual content. The panoramic fieldof view may emphasize background captured within the spherical visualcontent. The panoramic field of view may emphasize horizon capturedwithin the spherical visual content. The panoramic field of view mayemphasize relationship between one or more subjects (e.g., persons,vehicles, things) and the background/horizon depicted within thespherical visual content. The panoramic field of view may emphasize sizeand/or length (e.g., width, height) of a subject depicted within thespherical visual content.

In some implementations, the placement of the viewing window within thespherical field of view may be static to provide the same punchout ofthe visual content. For example, FIG. 9A illustrates an exampleplacement of a viewing window 910 within the field of view of thespherical visual content 900. The viewing window 910 may be placedwithin the center of the field of view of the spherical visual content900. The viewing window may extend from −135 horizontal degree to 135horizontal degree, and from −45 vertical degree to 45 vertical degree.Other static placements of the viewing window are contemplated.

In some implementations, the placement of the viewing window may bedetermined be located along a vertical center of the visual contentmapped onto the two-dimensional plane using the equirectangularprojection. A vertical center may refer to a middle verticalposition/degree of the visual content mapped onto the two-dimensionalplane using the equirectangular projection. The viewing window placedalong the vertical center may include the center of the viewing windowbeing located along a vertical center, such as a vertical center 812shown in FIG. 8 .

In some implementations, the placement of the viewing window may bedetermined be located along a horizontal center of the visual contentmapped onto the two-dimensional plane using the equirectangularprojection. A horizontal center may refer to a middle horizontalposition/degree of the visual content mapped onto the two-dimensionalplane using the equirectangular projection. The viewing window placedalong the horizontal center may include the center of the viewing windowbeing located along a horizontal center, such as a horizontal center 814shown in FIG. 8 .

The placement of the viewing window along a horizontal center of thevisual content mapped onto the two-dimensional plane using theequirectangular projection may result in the stitch line beingpositioned closer to a lateral edge of the viewing window than to acenter of the viewing window. For example, in FIG. 9A, the viewingwindow 910 may be placed along a horizontal center of the sphericalvisual content 900 mapped onto the two-dimensional plane using theequirectangular projection. The placement of the viewing window 910along the horizontal center may result in the stitch line being closerto the left and right edges of the viewing window 910 rather than to thecenter of the viewing window 910.

In some implementations, the placement of the viewing window may bedetermined based on identification of one or more things depicted withinthe visual content and/or other information. Visual content analysis maybe performed to identify what things are depicted within the visualcontent, and the viewing window may be placed within the spherical fieldof view of the visual content based on the identification. The placementof the viewing window may define framing of the thing(s) depicted withinthe visual content. The extent of the visual contented defined by theviewing window may define how the portion of the visual contentwithin/defined by the viewing window is framed for inclusion inpanoramic visual content.

For example, one or more of viewing direction, viewing size, viewingrotation, and/or other parameters of the viewing window may bedetermined based on content detection and/or other information. Contentdetection may include detection of one or more things (e.g., persons,faces, objects, environment, emotion, activity, action) depicted withinthe visual content. One or more of viewing direction, viewing size,viewing rotation, and/or other parameters of the viewing window may bedetermined based on the content detection so that the panoramic visualcontent includes portions of the visual content framed based on one ormore things depicted within the visual content. For example, the viewingdirection of the viewing window (e.g., along a vertical center) may bedetermined based on content detection to include a particular framing ofone or more things depicted within the visual content. For instance,FIG. 9B illustrate an example placement of a viewing window 920. Theviewing direction of the viewing window 920 may be determined based onidentification of thing(s) depicted within the spherical visual content900. The viewing direction may be determined to be located to the leftof the horizontal center (e.g., include a non-front centered view of thespherical visual content 900). Change in viewing direction of theviewing window as a function of progress through progress length ofvideo content may simulate panning. For example, movement of the viewingwindow may simulate panning of the image capture device during visualcontent capture (e.g., panning up and down, side to side).

In some implementations, the panoramic field of view may change as thefunction of progress through the progress length to simulate changes inzoom within a panoramic video. For example, the horizontal and/orvertical field of view included within the panoramic field of view maychange to change the viewing size of the viewing window. Changes in theviewing size (size of the viewing window) as the function of progressthrough the progress length may simulate changes in zoom of the visualcontent. The viewing size may be increased to simulate decrease in zoomof the visual content. The viewing size may be decreased to simulateincrease in zoom of the visual content.

For example, FIGS. 10A and 10B illustrate example placements of viewingwindows 1010, 1020 with different viewing sizes. The viewing size of theviewing window 1010 may be smaller than the viewing size of the viewingwindow 1020. The smaller viewing size of the viewing window 1010 mayprovide a view of spherical visual content 1000 that is more zoomed inthan a view of the spherical visual content 100 provided by the viewingwindow 1020.

In some implementations, the placement of the viewing window may bedetermined based on a depiction of a horizon within the visual content.A horizon may refer to a line that appears to separate the visualcontent into two portions. A horizon may extend across majority orentirety of the visual content. For example, a horizon may refer to aline where the earth (e.g., ground, sea) appears to meet the sky. Theplacement of the viewing window may be determined to include a depictionof a horizon within the visual content at a vertical position fixedrelative to a height (vertical dimension) of the viewing window. Theplacement of the viewing window may be determined to include a depictionof a horizon within the visual content at a vertical position fixedrelative to a height (vertical dimension) of the viewing window duringchanging of the panoramic field of view (e.g., change in one or more ofviewing direction, viewing size, viewing rotation). For example, theplacement of the viewing window may be determined to include a depictionof a horizon within the visual content at a vertical position located ⅓or ⅔ of the height of the viewing window during changing of the viewingsize of the viewing window. Other vertical positions fixed relative tothe height of the viewing window are contemplated.

FIGS. 11A and 11B illustrate example placements of viewing windows 1110,1120. The placements of the viewing windows 1110, 1120 may change toinclude different extents of the spherical visual content 1100 (e.g., atdifferent moments within progress length of a spherical video). In FIG.11A, the viewing window 1110 may move up so that the viewing window1110, and the movement of the viewing window 1110 may cause depiction ofa horizon 1112 from being included within the viewing window 1110 to notbeing included within the viewing window 1110. That is, change in theplacement of the viewing window 1110 may cause the horizon 1112 to moveout of the viewing window 1110.

In some implementations, it may be important to include depiction ofhorizon within the viewing window/panoramic visual content. Thepanoramic field of view of the viewing window may emphasize horizoncaptured within the spherical visual content, and not including thedepiction of the horizon may result in loss of visual impact provided bythe panoramic view of the viewing window/panoramic visual content. Thepanoramic field of view of the viewing window may emphasize relationshipbetween one or more subjects (e.g., persons, vehicles, things) and thebackground/horizon depicted within the spherical visual content, and notincluding the depiction of the horizon may result in loss of therelationship between the subject(s) and the background/horizon depictedwithin the spherical visual content. For instance, the horizon 1112 mayprovide a frame of reference for subject(s) depicted within thespherical visual content 1100 and movement of the viewing window 1110 tonot include the horizon 1112 may result in loss of the frame ofreference for the subject(s).

To keep the depiction of horizon within the viewing window/panoramicvisual content, the viewing size of the viewing window may be changed.That is, the viewing size (horizontal and/or vertical field of view) ofthe viewing window may be increased and/or decreased to preserve thedepiction of horizon within the viewing window/panoramic visual content.

For example, in FIG. 11B, the placement of the viewing window 1120 maybe determined so that the depiction of the horizon 1112 is located at avertical position located ⅓ of the height of the viewing window 1120from the bottom. The vertical position of the depiction of the horizon1112 may remain fixed during increase in viewing size of the viewingwindow 1120 so that the depiction of the horizon 1112 remains at thevertical position located ⅓ of the height of the viewing window 1120from the bottom. Such change in the placement of the viewing window 1120may result in the viewing window 1120 including the extent of thespherical visual content 1100 defined by the viewing window 1110 whilekeeping the depiction of the horizon 1112. Such change in the placementof the viewing window 1120 may result in the panoramic visual contentinclude the depiction of the horizon 1112 at the same location. That is,during change in zoom of the visual content simulated by the change inviewing size, the location of the horizon 1112 depicted within thepanoramic visual content may remain the same (e.g., ⅓ of the height ofthe panoramic visual content).

The generation component 106 may be configured to generate the panoramicvisual content based on the viewing window and/or other information. Thepanoramic visual content may include a punchout of the extent(s) of thevisual content within the viewing window. The panoramic visual contentmay be generated to provide a panoramic view of the visual content.Inclusion of the extent(s) of the visual content defined by the viewingwindow within the panoramic visual content may effectuate panoramicviewing of the visual content via selective cropping. In someimplementations, the panoramic visual content may be generated fromvisual content of a spherical video for inclusion in a panoramic video.The panoramic visual content may be generated as the function ofprogress through the progress length of a spherical video for inclusionin a panoramic video. Generation of the panoramic visual content using apunchout of visual content including spherical field of view (sphericalvisual content) may generate higher quality (e.g., less stitchingartifact, less intraframe motion) panoramic visual content than may begenerated from panning of image capture device (e.g., swiveling theimage capture device left to right) to capture a panoramic field of viewover a time duration. Generation of the panoramic visual content using apunchout of visual content including spherical field of view may enablestraight forward generation of panoramic video via selective cropping.

In some implementations, generation of the panoramic visual contentbased on the viewing window may include cropping of one or more extentsof the visual content outside the viewing window. For example, in FIG. 7, panoramic visual content may be generated by cropping extents of thespherical visual content 700 outside the viewing window 710. In FIG. 8 ,panoramic visual content may be generated by cropping extents of thespherical visual content 800 outside the viewing window 810. In FIG. 9A,panoramic visual content may be generated by cropping extents of thespherical visual content 900 outside the viewing window 910. In FIG. 9B,panoramic visual content may be generated by cropping extents of thespherical visual content 900 outside the viewing window 920. In FIG.10A, panoramic visual content may be generated by cropping extents ofthe spherical visual content 1000 outside the viewing window 1010. InFIG. 10B, panoramic visual content may be generated by cropping extentsof the spherical visual content 1000 outside the viewing window 1020. InFIG. 11A, panoramic visual content may be generated by cropping extentsof the spherical visual content 1100 outside the viewing window 1110. InFIG. 11B, panoramic visual content may be generated by cropping extentsof the spherical visual content 1100 outside the viewing window 1120.Other generation of panoramic visual content based on viewing window arecontemplated.

In some implementation, the visual content may be mapped onto a sphere,and generation of the panoramic visual content based on the viewingwindow may include rotation of the sphere to position the extent of thevisual content defined by the viewing window at a location of the sphereto be punched out. For example, the sphere may be rotated to positionthe extent of the visual content defined by the viewing window at alocation of the sphere corresponding to a center portion of the visualcontent mapped onto a two-dimensional plane (e.g., using anequirectangular projection). The extent(s) of the visual content outsidethe center portion may be cropped out to generate the panoramic visualcontent.

For instance, FIG. 14 illustrates an example rotation of sphericalvisual content 1400. The spherical visual content 1400 may be mappedonto a sphere, with a point 1404 corresponding to a front point of thesphere. A viewing window 1410 for generating panoramic visual contentmay be positioned at front-left portion of the sphere. The extent withinthe viewing window 1410 may be punched out by (1) mapping the sphericalvisual content 1400 onto a two-dimensional plane (e.g., using anequirectangular projection) and positioning the viewing window withinthe two-dimensional plane to the left of the center. In someimplementations, the viewing window may be fixed at the center of thetwo-dimensional plane, and the sphere may be rotated to bring thedesired extent of the spherical visual content to the location of thesphere corresponding to the center portion of the two-dimensional plane.For example, as shown in FIG. 14 , the sphere may be rotated by arotation 1420 so that the extent of the spherical visual content 1400defined by the viewing window 1410 is located at the front portion ofthe sphere. The front portion of the sphere may correspond to the centerportion of the visual content mapped onto the two-dimensional plane,with the extent within the center portion being punched-out to generatethe panoramic visual content. Thus, the location of the viewing windowin the two-dimensional plane may remain fixed and the visual content maybe rotated to fit the desired extent of the visual content within theviewing window.

In some implementations, the panoramic visual content may be generatedas an encoded version/copy of the panoramic visual content (e.g.,encoded image/video file) and/or a director track that defines theextents of the visual content to be used during presentation. Forexample, the panoramic visual content may be generated as one or moreimages and/or video frames in a video file. The image(s)/video may beopened for presentation of the panoramic visual content. The panoramicvisual content may be generated as instructions to render the visualcontent for presentation. The instructions (e.g., director track) maywhich define visual portions of the visual content (e.g., which portionsof spherical images, spherical video frames) should be included withinthe presentation of the visual content. The instructions may includeinformation on the placement of the viewing window/punchout of thespherical image(s)/spherical video frames to be used to provide apanoramic view of the spherical image(s)/spherical video frames. Animage/video application may use the instructions to retrieve therelevant visual portions of the spherical image(s)/spherical videoframes when the visual content is opened and/or is to be presented.

The generation component 106 may be configured effectuate storage of thepanoramic visual content and/or other information in one or more storagemedia. For example, the panoramic visual content (e.g., image file,video file, director track) may be stored in the electronic storage 13,remote storage locations (storage media located at/accessible through aserver), and/or other locations. In some implementations, the generationcomponent 106 may effectuate storage of the panoramic visual contentthrough one or more intermediary devices. For example, the processor 11may be located within a computing device without a connection to thestorage device (e.g., the computing device lacks WiFi/cellularconnection to the storage device). The generation component 106 mayeffectuate storage of the panoramic visual content through anotherdevice that has the necessary connection (e.g., the computing deviceusing a WiFi/cellular connection of a paired mobile device, such as asmartphone, tablet, laptop, to store information in one or more storagemedia). Other storage locations for and storage of the panoramic visualcontent are contemplated.

Implementations of the disclosure may be made in hardware, firmware,software, or any suitable combination thereof. Aspects of the disclosuremay be implemented as instructions stored on a machine-readable medium,which may be read and executed by one or more processors. Amachine-readable medium may include any mechanism for storing ortransmitting information in a form readable by a machine (e.g., acomputing device). For example, a tangible (non-transitory)machine-readable storage medium may include read-only memory, randomaccess memory, magnetic disk storage media, optical storage media, flashmemory devices, and others, and a machine-readable transmission mediamay include forms of propagated signals, such as carrier waves, infraredsignals, digital signals, and others. Firmware, software, routines, orinstructions may be described herein in terms of specific exemplaryaspects and implementations of the disclosure, and performing certainactions.

In some implementations, some or all of the functionalities attributedherein to the system 10 may be provided by external resources notincluded in the system 10. External resources may include hosts/sourcesof information, computing, and/or processing and/or other providers ofinformation, computing, and/or processing outside of the system 10.

Although the processor 11 and the electronic storage 13 are shown to beconnected to the interface 12 in FIG. 1 , any communication medium maybe used to facilitate interaction between any components of the system10. One or more components of the system 10 may communicate with eachother through hard-wired communication, wireless communication, or both.For example, one or more components of the system 10 may communicatewith each other through a network. For example, the processor 11 maywirelessly communicate with the electronic storage 13. By way ofnon-limiting example, wireless communication may include one or more ofradio communication, Bluetooth communication, Wi-Fi communication,cellular communication, infrared communication, Li-Fi communication, orother wireless communication. Other types of communications arecontemplated by the present disclosure.

Although the processor 11 is shown in FIG. 1 as a single entity, this isfor illustrative purposes only. In some implementations, the processor11 may comprise a plurality of processing units. These processing unitsmay be physically located within the same device, or the processor 11may represent processing functionality of a plurality of devicesoperating in coordination. The processor 11 may be configured to executeone or more components by software; hardware; firmware; some combinationof software, hardware, and/or firmware; and/or other mechanisms forconfiguring processing capabilities on the processor 11.

It should be appreciated that although computer components areillustrated in FIG. 1 as being co-located within a single processingunit, in implementations in which processor 11 comprises multipleprocessing units, one or more of computer program components may belocated remotely from the other computer program components. Whilecomputer program components are described as performing or beingconfigured to perform operations, computer program components maycomprise instructions which may program processor 11 and/or system 10 toperform the operation.

While computer program components are described herein as beingimplemented via processor 11 through machine-readable instructions 100,this is merely for ease of reference and is not meant to be limiting. Insome implementations, one or more functions of computer programcomponents described herein may be implemented via hardware (e.g.,dedicated chip, field-programmable gate array) rather than software. Oneor more functions of computer program components described herein may besoftware-implemented, hardware-implemented, or software andhardware-implemented

The description of the functionality provided by the different computerprogram components described herein is for illustrative purposes, and isnot intended to be limiting, as any of computer program components mayprovide more or less functionality than is described. For example, oneor more of computer program components may be eliminated, and some orall of its functionality may be provided by other computer programcomponents. As another example, processor 11 may be configured toexecute one or more additional computer program components that mayperform some or all of the functionality attributed to one or more ofcomputer program components described herein.

The electronic storage media of the electronic storage 13 may beprovided integrally (i.e., substantially non-removable) with one or morecomponents of the system 10 and/or as removable storage that isconnectable to one or more components of the system 10 via, for example,a port (e.g., a USB port, a Firewire port, etc.) or a drive (e.g., adisk drive, etc.). The electronic storage 13 may include one or more ofoptically readable storage media (e.g., optical disks, etc.),magnetically readable storage media (e.g., magnetic tape, magnetic harddrive, floppy drive, etc.), electrical charge-based storage media (e.g.,EPROM, EEPROM, RAM, etc.), solid-state storage media (e.g., flash drive,etc.), and/or other electronically readable storage media. Theelectronic storage 13 may be a separate component within the system 10,or the electronic storage 13 may be provided integrally with one or moreother components of the system 10 (e.g., the processor 11). Although theelectronic storage 13 is shown in FIG. 1 as a single entity, this is forillustrative purposes only. In some implementations, the electronicstorage 13 may comprise a plurality of storage units. These storageunits may be physically located within the same device, or theelectronic storage 13 may represent storage functionality of a pluralityof devices operating in coordination.

FIG. 2 illustrates method 200 for generating panoramic visual content.The operations of method 200 presented below are intended to beillustrative. In some implementations, method 200 may be accomplishedwith one or more additional operations not described, and/or without oneor more of the operations discussed. In some implementations, two ormore of the operations may occur substantially simultaneously.

In some implementations, method 200 may be implemented in one or moreprocessing devices (e.g., a digital processor, an analog processor, adigital circuit designed to process information, a central processingunit, a graphics processing unit, a microcontroller, an analog circuitdesigned to process information, a state machine, and/or othermechanisms for electronically processing information). The one or moreprocessing devices may include one or more devices executing some or allof the operation of method 200 in response to instructions storedelectronically on one or more electronic storage media. The one or moreprocessing devices may include one or more devices configured throughhardware, firmware, and/or software to be specifically designed forexecution of one or more of the operations of method 200.

Referring to FIG. 2 and method 200, at operation 201, visual informationand/or other information may be obtained. The visual information maydefine visual content captured by an image capture device. The visualcontent may have a spherical field of view. In some implementation,operation 201 may be performed by a processor component the same as orsimilar to the visual information component 102 (Shown in FIG. 1 anddescribed herein).

At operation 202, placement of a viewing window within the sphericalfield of view of the visual content may be determined. The viewingwindow may define an extent of the visual content to be included withina punchout of the visual content. The viewing window may have apanoramic field of view. In some implementation, operation 202 may beperformed by a processor component the same as or similar to the viewingwindow component 104 (Shown in FIG. 1 and described herein).

At operation 203, the panoramic visual content may be generated based onthe viewing window and/or other information. The panoramic visualcontent may include the punchout of the extent of the visual contentwithin the viewing window. In some implementation, operation 203 may beperformed by a processor component the same as or similar to thegeneration component 106 (Shown in FIG. 1 and described herein).

Although the system(s) and/or method(s) of this disclosure have beendescribed in detail for the purpose of illustration based on what iscurrently considered to be the most practical and preferredimplementations, it is to be understood that such detail is solely forthat purpose and that the disclosure is not limited to the disclosedimplementations, but, on the contrary, is intended to covermodifications and equivalent arrangements that are within the spirit andscope of the appended claims. For example, it is to be understood thatthe present disclosure contemplates that, to the extent possible, one ormore features of any implementation can be combined with one or morefeatures of any other implementation.

What is claimed is:
 1. A system for generating panoramic visual content,the system comprising: one or more physical processors configured bymachine-readable instructions to: obtain visual information definingvisual content captured by an image capture device, the visual contenthaving a spherical field of view; determine placement of a viewingwindow within the spherical field of view of the visual content, theviewing window defining an extent of the visual content to be includedwithin a punchout of the visual content, the viewing window having apanoramic field of view; and generate the panoramic visual content basedon the viewing window, wherein the extent of the visual content definedby the viewing window is positioned to be centered on a center of atwo-dimensional plane onto which the visual content is mapped using anequirectangular projection, and generation of the panoramic visualcontent includes crop of an extent of the visual content mapped onto thetwo-dimensional plane that is outside the viewing window centered on thecenter of the two-dimensional plane.
 2. The system of claim 1, whereinthe placement of the viewing window is determined to be located along avertical center of the visual content mapped onto the two-dimensionalplane using the equirectangular projection.
 3. The system of claim 1,wherein: the visual content having the spherical field of view isgenerated based on stitching of first visual content and second visualcontent, the first visual content captured using a first optical elementof the image capture device and the second visual content captured usinga second optical element of the image capture device, the first opticalelement having a first field of view and the second optical elementhaving a second field of view, the first optical element and the secondoptical element carried by the image capture device such that aperipheral portion of the first field of view and a peripheral portionof the second field of view overlap, the overlap of the peripheralportion of the first field of view and the peripheral portion of thesecond field of view enabling spherical capture of the visual content, astitch line for stitching of the first visual content and the secondvisual content positioned within the overlap; the stitch line ispositioned within lateral portions of the visual content mapped onto thetwo-dimensional plane using the equirectangular projection; and theplacement of the viewing window is determined to be located along ahorizontal center of the visual content mapped onto the two-dimensionalplane using the equirectangular projection such that the stitch line ispositioned closer to a lateral edge of the viewing window than to acenter of the viewing window.
 4. The system of claim 1, wherein: thevisual information defines the visual content of a spherical videohaving a progress length such that the visual content is defined as afunction of progress through the progress length; the panoramic visualcontent is generated as the function of progress through the progresslength for inclusion in a panoramic video.
 5. The system of claim 4,wherein the panoramic field of view changes as the function of progressthrough the progress length to simulate changes in zoom within thepanoramic video.
 6. The system of claim 5, wherein the placement of theviewing window is determined to include a depiction of a horizon withinthe visual content at a vertical position fixed relative to a height ofthe viewing window during changing of the panoramic field of view. 7.The system of claim 4, wherein the visual content of the spherical videois rotated as the function of progress through the process length basedon rotational positions of the image capture device during capture ofthe visual content, the rotation of the visual content resulting in thevisual content being oriented in a top-down manner such that the visualcontent is aligned with a direction of gravity on the image capturedevice during capture of the visual content.
 8. The system of claim 4,wherein the placement of the viewing window is determined based onidentification of a thing depicted within the visual content, theplacement of the viewing window defining framing of the thing depictedwithin the visual content.
 9. The system of claim 4, wherein theplacement of the viewing window changes as the function of progressthrough the progress length to simulate panning of the image capturedevice during visual content capture.
 10. A method for generatingpanoramic visual content, the method performed by a computing systemincluding one or more processors, the method comprising: obtaining, bythe computing system, visual information defining visual contentcaptured by an image capture device, the visual content having aspherical field of view; determining, by the computing system, placementof a viewing window within the spherical field of view of the visualcontent, the viewing window defining an extent of the visual content tobe included within a punchout of the visual content, the viewing windowhaving a panoramic field of view; and generating, by the computingsystem, the panoramic visual content based on the viewing window,wherein the extent of the visual content defined by the viewing windowis positioned to be centered on a center of a two-dimensional plane ontowhich the visual content is mapped using an equirectangular projection,and generation of the panoramic visual content includes crop of anextent of the visual content mapped onto the two-dimensional plane thatis outside the viewing window centered on the center of thetwo-dimensional plane.
 11. The method of claim 10, wherein the placementof the viewing window is determined to be located along a verticalcenter of the visual content mapped onto the two-dimensional plane usingthe equirectangular projection.
 12. The method of claim 10, wherein: thevisual content having the spherical field of view is generated based onstitching of first visual content and second visual content, the firstvisual content captured using a first optical element of the imagecapture device and the second visual content captured using a secondoptical element of the image capture device, the first optical elementhaving a first field of view and the second optical element having asecond field of view, the first optical element and the second opticalelement carried by the image capture device such that a peripheralportion of the first field of view and a peripheral portion of thesecond field of view overlap, the overlap of the peripheral portion ofthe first field of view and the peripheral portion of the second fieldof view enabling spherical capture of the visual content, a stitch linefor stitching of the first visual content and the second visual contentpositioned within the overlap; the stitch line is positioned withinlateral portions of the visual content mapped onto the two-dimensionalplane using the equirectangular projection; and the placement of theviewing window is determined to be located along a horizontal center ofthe visual content mapped onto the two-dimensional plane using theequirectangular projection such that the stitch line is positionedcloser to a lateral edge of the viewing window than to a center of theviewing window.
 13. The method of claim 10, wherein: the visualinformation defines the visual content of a spherical video having aprogress length such that the visual content is defined as a function ofprogress through the progress length; the panoramic visual content isgenerated as the function of progress through the progress length forinclusion in a panoramic video.
 14. The method of claim 13, wherein thepanoramic field of view changes as the function of progress through theprogress length to simulate changes in zoom within the panoramic video.15. The method of claim 14, wherein the placement of the viewing windowis determined to include a depiction of a horizon within the visualcontent at a vertical position fixed relative to a height of the viewingwindow during changing of the panoramic field of view.
 16. The method ofclaim 13, wherein the visual content of the spherical video is rotatedas the function of progress through the process length based onrotational positions of the image capture device during capture of thevisual content, the rotation of the visual content resulting in thevisual content being oriented in a top-down manner such that the visualcontent is aligned with a direction of gravity on the image capturedevice during capture of the visual content.
 17. The method of claim 13,wherein the placement of the viewing window is determined based onidentification of a thing depicted within the visual content, theplacement of the viewing window defining framing of the thing depictedwithin the visual content.
 18. The method of claim 13, wherein theplacement of the viewing window changes as the function of progressthrough the progress length to simulate panning of the image capturedevice during visual content capture.
 19. A system for generatingpanoramic visual content, the system comprising: one or more physicalprocessors configured by machine-readable instructions to: obtain visualinformation defining visual content of a spherical video having aprogress length, the visual content captured by an image capture device,the visual content having a spherical field of view; determine placementof a viewing window within the spherical field of view of the visualcontent, the viewing window defining an extent of the visual content tobe included within a punchout of the visual content, the viewing windowhaving a panoramic field of view; and generate the panoramic visualcontent as a function of progress through the progress length of thespherical video for inclusion in a panoramic video based on the viewingwindow, wherein the extent of the visual content defined by the viewingwindow is positioned to be centered on a center of a two-dimensionalplane onto which the visual content is mapped using an equirectangularprojection, and generation of the panoramic visual content includes cropof an extent of the visual content mapped onto the two-dimensional planethat is outside the viewing window centered on the center of thetwo-dimensional plane.
 20. The system of claim 19, wherein: theplacement of the viewing window is determined based on identification ofa thing depicted within the visual content, the placement of the viewingwindow defining framing of the thing depicted within the visual content;or the placement of the viewing window changes as the function ofprogress through the progress length to simulate panning of the imagecapture device during visual content capture.